#ifndef _M_LOGGER_HPP__
#define _M_LOGGER_HPP__


#include<stdio.h>
#include<time.h>


#define INF 0
#define DBG 1
#define ERR 2
#define DEFALUT_LOG_LEVEL INF

#define LOG(level,format,...) do{\
    if(DEFALUT_LOG_LEVEL > level) break; \
    time_t t = time(NULL); \
    struct tm *tm = localtime(&t); \
    char buf[64]; \
    strftime(buf, 63, "%Y-%m-%d %H:%M:%S", tm); \
    fprintf(stdout,"[%s:%s:%d]" format "\n",buf,__FILE__,__LINE__, ##__VA_ARGS__); \
}while (0)


#define ILOG(format,...) LOG(INF,format, ##__VA_ARGS__)
#define DLOG(format,...) LOG(DBG,format, ##__VA_ARGS__)
#define ELOG(format,...) LOG(ERR,format, ##__VA_ARGS__)

#endif